<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>类的方法继承</title>
</head>
<body>
    
</body>
<script>
    /*
        类的方法继承  实际上就是原型的方法继承 只是语法简单了很多
    */
    // 原型构造函数的继承方法
    function People(){

    }
    function User(){

    }
    People.prototype.show = ()=>{
        console.log('hhh')
    }
    User.prototype = Object.create(People.prototype)
    let jim = new User()
    jim.show()  //hhh  不会报错  方法是存在于原型链上的

    // 使用类的语法糖
    class jimmy{
        show(){
            console.log('i am king')
        }
    }
    class xue extends jimmy{
        constructor(name){
            super()
            this.name = name
        }
    }
    let xuexue = new xue('xuexuexue')
    console.log(xuexue)  //name: "xuexuexue"  __proto__: jimmy  
    xuexue.show()  //i am king
    // 这个就是类语法糖的好处  已经做到自动的将我们父类中的方法给传递到了子类上  子类完全不需要操作
    /*
        我们知道 处在原型链上的数据再继承的过程中是可以访问的  像方法就是在原型链上的数据
            但是属性并不是存在于原型链上  所以在继承的时候是不能一起继承的
    */

</script>
</html>